package com.xygz.orm.annotations;

import com.xiyuan.smartutils.genid.GenID;
import com.xygz.orm.enums.KeyType;

import java.lang.annotation.*;

/**
 * 表主键, 数据类型只能是 int,long,String
 *
 * @author xiyuan-lgz 2023-09-18 @version v1.0.0 新建与整理
 */
@Documented
@Retention(RetentionPolicy.RUNTIME)
@Target(ElementType.FIELD)
public @interface PrimaryKey {
    /**
     * 默认自动输入
     *
     * @return 键类型
     */
    public KeyType type() default KeyType.INPUT;
    
    public Class<? extends GenID>[] generator() default {};
    
    /**
     * 插入时默认是否返回自增主键。
     * <p>
     * 注：仅当 type= KeyType.AUTO 时有效。
     *
     * @return true | false
     */
    public boolean useGenerator() default true;
}
